﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            //CommonOpenFileDialog dialog = new CommonOpenFileDialog();   
        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (DialogResult.OK == folderBrowserDialog1.ShowDialog())
            {

            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //// 创建增强版文件对话框
            //using (var dialog=new VistaOpenFileDialog())
            //{
            //    dialog.Multiselect = true;

            //    dialog.ShowDialog();
            //}
        }

        private void button4_Click(object sender, EventArgs e)
        {
            //var dialog = new FolderBrowserDialogEx();
            //dialog.RootFolder = Environment.SpecialFolder.MyComputer;
            ////dialog.ShowTextBox = true; // 显示文本框让用户输入路径
            //dialog.ShowNewFolderButton = true; // 显示新建文件夹按钮
            //                                   // 显示对话框并获取结果
            //if (dialog.ShowDialog() == DialogResult.OK)
            //{
            //    string selectedPath = dialog.SelectedPath;
            //    // 可以检查是否选择了文件，例如：
            //    if (System.IO.File.Exists(selectedPath))
            //    {
            //        // 处理文件
            //    }
            //    else if (System.IO.Directory.Exists(selectedPath))
            //    {
            //        // 处理目录
            //    }
            //}
        }

        private void button5_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                // 设置过滤器以允许选择文件夹
                openFileDialog.Filter = "文件夹|*.folder";
                openFileDialog.Title = "选择文件夹";
                openFileDialog.Multiselect = true;
                openFileDialog.ShowDialog();

                if (openFileDialog.FileName != "")
                {
                    // 获取所选文件夹的路径
                    string folderPath = openFileDialog.FileName;
                    MessageBox.Show("所选文件夹的路径: " + folderPath);
                }
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            //var dialog = new CommonOpenFileDialog
            //{
            //    // 配置对话框标题
            //    Title = "同时选择文件和目录",

            //    // 关键配置：允许多选并禁用文件夹选择限制
            //    Multiselect = true,
            //    IsFolderPicker = false, // 设为false以允许选择文件

            //    // 添加必要的选项：强制文件系统项并允许非文件系统项
            //    EnsureFileExists = false,
            //    EnsurePathExists = true,
            //    AllowNonFileSystemItems = false // 仅显示实际文件系统项
            //};

            //if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
            //{
            //    foreach (var item in dialog.FileNames) // 对于文件夹，这将返回文件夹路径的数组
            //    {
            //        Console.WriteLine(item); // 输出选择的文件夹或文件路径
            //    }
            //}
        }

        private void button7_Click(object sender, EventArgs e)
        {
            //var dialog = new CommonOpenFileDialog
            //{
            //    // 配置对话框标题
            //    Title = "同时选择文件和目录",

            //    // 关键配置：允许多选并禁用文件夹选择限制
            //    Multiselect = true,
            //    IsFolderPicker = true, // 设为false以允许选择文件

            //    // 添加必要的选项：强制文件系统项并允许非文件系统项
            //    EnsureFileExists = false,
            //    EnsurePathExists = true,
            //    AllowNonFileSystemItems = false // 仅显示实际文件系统项
            //};

            //if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
            //{
            //    foreach (var item in dialog.FileNames) // 对于文件夹，这将返回文件夹路径的数组
            //    {
            //        Console.WriteLine(item); // 输出选择的文件夹或文件路径
            //    }
            //}
        }
    }
}
